package proxy;

import interfaz.Interfaz;

import java.rmi.Naming;
import java.rmi.RemoteException;
import java.util.List;
import java.util.Vector;

import beans.ItemLista;
import beans.Lista;
import beans.OrdenCompraProv;
import beans.OrdenPedido;
import beans.Proveedor;
import beans.Rodamiento;

public class ProxyConcreto extends Proxy {

	private static final long serialVersionUID = 1L;
	private Interfaz rodamientos;
	
	public ProxyConcreto() throws RemoteException {
		super();
		getConexion();
	}

	protected void getConexion()
	{
    	try {
    		rodamientos = (Interfaz)Naming.lookup ("//localhost/rodamientos");
    		//gestionCuentas.addObserverRemoto(this);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}


		
	//PUNTO 5 COMPRA RODAMIENTOS
	public List<OrdenCompraProv>  obtenerOCdeProveedores(){
		try
		{
			return rodamientos.obtenerOCdeProveedores();
		}
		catch (RemoteException e) 
		{
			e.printStackTrace();
			return null;
		}
	}
	
	
	
	
	//PUNTO 3
	public void crearListaProveedor(Lista lista)
	{
		try
		{
			rodamientos.guardarListaProveedor(lista);
		}
		catch (RemoteException e) 
		{
			e.printStackTrace();
		}
	}
	
	
	
	//ABM PROVEEDOR
	public void crearProveedor(Proveedor p)
	{
		try
		{
			rodamientos.guardarProveedor(p);
		}
		catch (RemoteException e) 
		{
			e.printStackTrace();
		}
		
	}
	
	public void modificarProveedor(Proveedor prov)
	{
		try
		{
			rodamientos.guardarProveedor(prov);
		}
		catch (RemoteException e) 
		{
			e.printStackTrace();
		}
	}
	
	public void bajaProveedor(Proveedor prov)
	{
		try
		{
			rodamientos.eliminarProveedor(prov);
		}
		catch (RemoteException e) 
		{
			e.printStackTrace();
		}
	}
	
	public Proveedor buscarProveedor(Proveedor prov)
	{
		try
		{
			prov =rodamientos.obtenerProveedor(prov);
			return prov;
		}
		catch (RemoteException e) 
		{
			e.printStackTrace();
			return null;
		}
	}
	
	public Vector<Proveedor> buscarProveedores() {
		try {
			return rodamientos.obtenerProveedores();
		} catch (Exception e) {
			e.printStackTrace();
		}
		return null;
	}
	
	
	
	
	
	//ABM RODAMIENTO
	public Vector<Rodamiento> buscarRodamientos() {
		try {
			return rodamientos.obtenerRodamientos();
		} catch (Exception e) {
			e.printStackTrace();
		}
		return null;
	}	
	
	public Rodamiento buscarRodamiento(Rodamiento ro)
	{
		try
		{
			ro = rodamientos.obtenerRodamiento(ro);
			return ro;
		}
		catch (RemoteException e) 
		{
			e.printStackTrace();
			return null;
		}
	}
	
	public void eliminarRodamiento(Rodamiento ro)
	{
		try
		{
			rodamientos.eliminarRodamiento(ro);
		}
		catch (RemoteException e) 
		{
			e.printStackTrace();
		}
	}
	
	public void modificarRodamiento(Rodamiento ro)
	{
		try
		{
			rodamientos.guardarRodamiento(ro);
		}
		catch (RemoteException e) 
		{
			e.printStackTrace();
		}
	}

	public void guardarRodamiento(Rodamiento rodamiento)
	{
		try
		{
			//System.out.println("eta");
			rodamientos.guardarRodamiento(rodamiento);
		}
		catch (RemoteException e) 
		{
			e.printStackTrace();
		}
	}
	
	
	
	
	
	//OTROS
	public void importar() {
		try
		{
			rodamientos.importar();
		}
		catch (RemoteException e) 
		{
			e.printStackTrace();
		}
	}

	public void importarOC() {
		try
		{
			rodamientos.importarOC();
		}
		catch (RemoteException e) 
		{
			e.printStackTrace();
		}
	}

	public ItemLista buscarItem(ItemLista item) {
	
		try {
			return rodamientos.obtenerItemlista(item);
		} catch (RemoteException e) {
			e.printStackTrace();
		}
		return null;
	}
	
	public void guardarItem(ItemLista iL) {
		try {
			rodamientos.guardarItemLista(iL);
		} catch (RemoteException e) {
			
			e.printStackTrace();
		}
	}
	
}
